#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <vector>
#include <queue>

using namespace std;

//bool check_around(vector<vector<int>> vv, int row, int col)
//{
//    int flag = 0;
//    for (int i = row - 2; i <= row + 2; i+=2)
//    {
//        for (int j = col - 2; j <= col + 2; j+=2)
//        {
//            if (i >= 0 && j >= 0 && i < vv.size() && j < vv[i].size())
//            {
//                if (vv[i][j] == vv[row][col])
//                {
//                    flag++;
//                }
//            }
//        }
//    }
//    if (flag > 1)
//    {
//        return false;
//    }
//    else
//    {
//        return true;
//    }
//}

bool check_around(vector<vector<int>> vv, int row, int col)
{
    int flag = 0;
    int i = row;
    for (int j = col - 2; j <= col + 2; j += 4)
    {
        if (j >= 0 && j < vv[i].size())
        {
            if (vv[i][j] == 1)
            {
                flag++;
            }
        }
    }
    i = col;
    for (int j = row - 2; j <= row + 2; j += 4)
    {
        if (j >= 0 && j < vv.size())
        {
            if (vv[j][i] == 1)
            {
                flag++;
            }
        }
    }
    if (flag > 0)
    {
        return false;
    }
    else
    {
        return true;
    }
}

void Test_check_around()
{
    int W, H;
    cin >> W;
    cin >> H;
    vector<vector<int>> vv;
    vv.resize(W);
    for (int i = 0; i < W; i++)
    {
        vv[i].resize(H, 0);
    }
    int size = 0;
    vv[0][0] = 1;
    for (int i = 0; i < W; i++)
    {
        for (int j = 0; j < H; j++)
        {
            if (check_around(vv, i, j))
            {
                vv[i][j] = 1;
                size++;
            }
        }
    }
    cout << size << endl;
}


int StrToInt(string str) {
    if (str.size() == 0)
    {
        return 0;
    }
    int flag = 1;
    auto cur = str.begin();
    while (isspace(*cur))
    {
        cur++;
    }
    if (*cur == '+')
    {
        flag = 1;
        cur++;
    }
    else if(*cur == '-')
    {
        flag = -1;
        cur++;
    }
    long long num = 0;
    while (cur != str.end())
    {
        if (num > INT_MAX)
        {
            return 0;
        }
        if (*cur >= 48 && *cur <= 57)
        {
            num = 10 * num + (*cur - '0');
        }
        else
        {
            return 0;
        }
        cur++;
    }
    if (num > INT_MAX)
    {
        return 0;
    }
    return num * flag;
}

void Test_StrToInt()
{
    string s;
    cin >> s;
    cout << StrToInt(s);
}

void Test()
{
    vector<int> nums;
    nums.push_back(1);
    nums.push_back(2);
    nums.push_back(3);
    nums.push_back(4);
    nums.push_back(5);
    priority_queue<int> pq(nums.begin(),nums.end());
    while (!pq.empty())
    {
        cout << pq.top() << " ";
        pq.pop();
    }
}

int main()
{
    //Test_StrToInt();
    Test();
    return 0;
}